<script>
  var a = {
    name: '诩哥'
  }
  Function.prototype.mycall = function(context) {
    context = context || window;
    context.fn = this;
    let args = [...arguments].slice(1);
    let result = context.fn(...args);
    delete context.fn;
    return result
  }
  function test(x, y, z) {
    console.log(this.name);
    console.log(x, y, z);
  }
  test.mycall(a, 1, 2, 3)

</script>